Linux Shell编程 |
您所在的位置:网站首页 › centos shell编程 › Linux Shell编程 |
Linux Shell编程
一、简述 简单的介绍shell脚本的基本用法。 shell脚本是 由一些按照一定格式组合起来的shell命令 组成。shell脚本不需要编译就可以直接执行,它是边解释边执行的。 二、命令解释器 Linux系统提供多种不同的Shell以供选择。常用的有Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)和Bourne Again Shell (简称bash)。 查看当前系统使用的shell默认解释器:echo $SHELL 三、脚本格式 脚本的第一行: #!/bin/bash这句话的意思是指定一款在/bin/下名字叫 bash 的 Shell 解释器,来解释脚本中的命令。如果系统用的是其他的解释器,就要将/bin/bash 改成相应的名字。 如一个简单的脚本:hello.sh (在终端打印"hello shell",并且将hello.sh文件的内容打印出来) 注:1)如果没有执行权限的需要添加执行权限,chmod a+x xxx.sh (表示所有用户都添加执行权限) 2)除了第一行,后面的'#'号就是注释符,'#'号后面的就是注释内容,会被解释器忽略。 注:也可以在执行时指定解释器 四、变量 Shell 脚本是一种弱类型语言,在脚本当中使用变量不需要也无法指定变量的“类型”。 缺省状态下,Shell 脚本的变量都是字符串。 4.1 变量的定义和赋值 变量名=变量值 (等号两边不能有空格) myname="liang" ( 可以不赋初值:myname=) 4.2 变量的引用 在变量名前面加上一个美元符号'$' $myname (引用myname变量的值) 如:定义一个变量myname并赋初值,然后打印myname变量的值。再从键盘输入一个名字,再打印出来。 var.sh 内容: 执行结果: 注:不用预先定义变量,可以直接使用变量,用的时候也是定义。 4.3 变量的种类 a) 普通的用户自定义变量,比如上面的 myname。 b) 系统预定义好的环境变量,比如 PATH,SHELL(系统默认使用的命令解释器)。 可以使用env (environment环境)命令查看系统的环境变量。 c) 命令行变量,比如$#、$*等 。 变量名含义$#表示位置参数的数量 $*表示所有位置参数的内容 $?表示命令执行后返回的状态,用于检查上一个命令的执行是否正确;在Linux中,命令退出状态为0表示命令正确执行,任何非0值表示命令执行错误$$表示当前进程的进程号$!表示后台运行的最后一个进程号 $0表示当前执行的进程名$1表示命令行的第一个参数,(就是在执行脚本的时候传递的参数:./xxx.sh arg1 arg2 ......)例子代码: 运行结果: 五、双引号、单引号、反引号的作用 5.1 双引号:将一连串的字符括起来成为一个"值"。 在定义变量的时候,如只有一个单词,可以不用加双引号。 如果字符串中多个单词(含有空格,tab制表等特殊符号)时,就需要用双引号括起来,以准确的将整个一个字符串赋值给变量。 5.2 反引号(是波浪号~那个按键):将反引号括起来的内容作为一个命令,然后执行并将结果替换到当前位置。 5.3 单引号:将括起来的内容全部当做是普通字符。 6.1 数组的定义 6.2 输出全部数组元素 七、for循环 7.1 for循环的简单使用 7.2 使用for循环对数组元素进行遍历 或者是: 7.3 使用for循环对数组元素进行逐个赋值 7.4 另一种形式的for循环 八、if语句 8.1 输入一个数,如果大于10,就打印more,等于10就打印equal,否则打印less。 或者是使用test 8.2 输入一个字符串如果是"apple",就打印tree;否则打印输入的字符串。 九、test语句:
语句 含义 说明 test -e file 判断文件 file 是否存在 存在返回 0,否则返回 1 test -r file 判断文件 file 是否可读 可读返回 0,否则返回 1 test -w file 判断文件 file 是否可写 可写返回 0,否则返回 1 test -x file 判断文件 file 是否可执行 可执行返回 0,否则返回 1 test -d file 判断文件 file 是否是目录 是目录返回 0,否则返回 1 test -f file 判断文件 file 是否是普通文件 是普通文件返回 0,否则返回 1 test -s file 判断文件 file 是否非空 非空返回 0,否则返回 1 test s1 = s2 判断字符串 s1 和 s2 是否相同 相同返回 0,否则返回 1 test s1 != s2 判断字符串 s1 和 s2 是否不同 不同返回 0,否则返回 1 test s1 s2 判断字符串 s1 是否大于 s2 s1 大于 s2 返回 0,否则返回 1 test -n s 判断字符串 s 长度是否为非 0 s 长度为非 0 返回 0,否则返回 1 test -z s 判断字符串 s 长度是否为 0 s 长度为 0 返回 0,否则返回 1 test n1 -eq n2 判断数值 n1 是否等于 n2 n1 等于 n2 返回 0,否则返回 1 test n1 -ne n2 判断数值 n1 是否不等于 n2 n1 不等于 n2 返回 0,否则返回 1 test n1 -gt n2 判断数值 n1 是否大于 n2 n1 大于 n2 返回 0,否则返回 1 test n1 -ge n2 判断数值 n1 是否大于等于 n2 n1 大于等于 n2 返回 0,否则返回 1 test n1 -lt n2 判断数值 n1 是否小于 n2 n1 小于 n2 返回 0,否则返回 1 test n1 -le n2 判断数值 n1 是否小于等于 n2 n1 小于等于 n2 返回 0,否则返回 1
九、case语句 9.1 输入一个字母,是A就打印"90~100", 是B就打印"70~89", 是C就打印"60~69",是D就打印" |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |